
<!DOCTYPE html>
<html lang="zh-cn">
    
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8" >
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="generator" content="XGHeaven&#39;s Blog">
    <title>分类: Gitlab - XGHeaven&#39;s Blog</title>
    <meta name="author" content="XGHeaven">
    
    
    
        <link rel="alternate" type="application/atom+xml" title="RSS" href="/atom.xml">
    
    <meta property="og:type" content="blog">
<meta property="og:title" content="XGHeaven&#39;s Blog">
<meta property="og:url" content="http://blog.xgheaven.cn/categories/Gitlab/index.html">
<meta property="og:site_name" content="XGHeaven&#39;s Blog">
<meta property="og:locale" content="zh-cn">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="XGHeaven&#39;s Blog">
<meta name="twitter:creator" content="@XGHeaven">
    
    
        
    
    
        <meta property="og:image" content="https://www.gravatar.com/avatar/f34474afe04544ffbe944a804f0ae762?s=640"/>
    
    
    
    
    <!--STYLES-->
    <link rel="stylesheet" href="/assets/css/style-mhhgzztqkaub4zd4cl8bd83f7mgh9j6njnhilft4hamhrjsliqyzwo2cfzdk.min.css">
    <!--STYLES END-->
    
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-71388235-1']);
        _gaq.push(['_trackPageview']);
        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
    </script>

    
    <script type="text/javascript">
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?9894361f828b64144ac1f2ac0c58c300";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
    </script>

</head>

    <body>
        <div id="blog">
            <!-- Define author's picture -->


    
        
    

<header id="header" data-behavior="1">
    <i id="btn-open-sidebar" class="fa fa-lg fa-bars"></i>
    <h1 class="header-title">
        <a class="header-title-link" href="/ ">XGHeaven&#39;s Blog</a>
    </h1>
    
        
            <a  class="header-right-picture "
                href="#about">
        
        
            <img class="header-picture" src="https://www.gravatar.com/avatar/f34474afe04544ffbe944a804f0ae762?s=90"/>
        
        </a>
    
</header>
            <!-- Define author's picture -->


    

<nav id="sidebar" data-behavior="1">
    
        <div class="sidebar-profile">
            <a href="/#about">
                    <img class="sidebar-profile-picture" src="https://www.gravatar.com/avatar/f34474afe04544ffbe944a804f0ae762?s=110"/>
            </a>
            <span class="sidebar-profile-name">XGHeaven</span>
        </div>
    
    
        <ul class="sidebar-buttons">
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/ "
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-home"></i>
                    <span class="sidebar-button-desc">首页</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/all-categories"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-bookmark"></i>
                    <span class="sidebar-button-desc">分类</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/all-tags"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-tags"></i>
                    <span class="sidebar-button-desc">标签</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/all-archives"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-archive"></i>
                    <span class="sidebar-button-desc">归档</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="#about"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-question"></i>
                    <span class="sidebar-button-desc">关于</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/friend-link"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-link"></i>
                    <span class="sidebar-button-desc">友情链接</span>
                </a>
        </li>
        
    </ul>
    
        <ul class="sidebar-buttons">
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link " href="https://github.com/XGHeaven" target="_blank">
                
                    <i class="sidebar-button-icon fa fa-lg fa-github"></i>
                    <span class="sidebar-button-desc">GitHub</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link " href="https://twitter.com/xgheaven" target="_blank">
                
                    <i class="sidebar-button-icon fa fa-lg fa-twitter"></i>
                    <span class="sidebar-button-desc">Twitter</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link " href="https://facebook.com/xgheaven" target="_blank">
                
                    <i class="sidebar-button-icon fa fa-lg fa-facebook"></i>
                    <span class="sidebar-button-desc">Facebook</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link " href="https://www.linkedin.com/xgheaven/" target="_blank">
                
                    <i class="sidebar-button-icon fa fa-lg fa-linkedin"></i>
                    <span class="sidebar-button-desc">LinkedIn</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link " href="mailto:xgheaven@gmail.com" target="_blank">
                
                    <i class="sidebar-button-icon fa fa-lg fa-envelope-o"></i>
                    <span class="sidebar-button-desc">邮箱</span>
                </a>
        </li>
        
    </ul>
    
        <ul class="sidebar-buttons">
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/atom.xml"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-rss"></i>
                    <span class="sidebar-button-desc">RSS</span>
                </a>
        </li>
        
            <li class="sidebar-button">
                
                    <a  class="sidebar-button-link "
                         href="/changelog"
                        
                    >
                
                    <i class="sidebar-button-icon fa fa-lg fa-line-chart"></i>
                    <span class="sidebar-button-desc">Changelog</span>
                </a>
        </li>
        
    </ul>
    
</nav>

            
            <div id="main" data-behavior="1"
                 class="
                        hasCoverMetaIn
                        ">
                
    

<section class="postShorten-group main-content-wrap">
    
    
    <article class="postShorten postShorten--thumbnailimg-bottom" itemscope itemType="http://schema.org/BlogPosting">
        <div class="postShorten-wrap">
            <div class="postShorten-header">
                <h1 class="postShorten-title" itemprop="headline">
                    
                        <a class="link-unstyled" href="/2016/03/06/the-first-ddns-for-gitlab/">
                            使用 DDNS 将 Gitlab 暴露到公网中的第一次尝试
                        </a>
                    
                </h1>
                <div class="postShorten-meta">
    <time itemprop="datePublished" content="Sun Mar 06 2016 00:05:08 GMT+0800">
	
		    3月 06, 2016
    	
    </time>
    
        <span>发布在 </span>
        
    <a class="category-link" href="/categories/Gitlab/">Gitlab</a>


    
</div>
            </div>
            
            
                <div class="postShorten-content" itemprop="articleBody">
                    <h1 id="table-of-contents">目录</h1><ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#前沿"><span class="toc-text">前沿</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#准备工作"><span class="toc-text">准备工作</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#在路由器中设置-DDNS"><span class="toc-text">在路由器中设置 DDNS</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#配置端口转发"><span class="toc-text">配置端口转发</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#为什么要将-80-映射到-8000，而-ssh-却不用？"><span class="toc-text">为什么要将 80 映射到 8000，而 ssh 却不用？</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#为什么我一切都配置好了，为啥还是不行？"><span class="toc-text">为什么我一切都配置好了，为啥还是不行？</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#配置-Gitlab-中的-external-url"><span class="toc-text">配置 Gitlab 中的 external_url</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Over"><span class="toc-text">Over</span></a></li></ol>
<h3 id="前沿"><a href="#前沿" class="headerlink" title="前沿"></a>前沿</h3><p>我个人参加了一个外包项目，其中他们有一台 Dell 服务器，里面装有最新版本的 Gitlab，我的任务就是将这个 Gitlab 通过 DDNS 暴露到公网中去。</p>
<p>在这里，我记录一下其中遇到的一些问题。</p>
<h3 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h3><ul>
<li>花生壳帐号（有一个免费或者收费的域名）</li>
<li>路由器（带有 DDNS 功能的路由器，我这里采用 小米路由器）</li>
<li>一个域名</li>
<li>一台刚刚安装完成并且成功启动的 Gitlab 服务器</li>
</ul>
<p>至于如何申请花生壳，我就不在这里多说了，不过我要说一点，在花生壳里面，你注册的时候会给你一个免费的域名。这个域名有一个神奇的名字，叫过<code>壳域名</code>，我第一次没有意识到，这个就是免费域名，找了好久，也没有找到在哪里。😂</p>
<h3 id="在路由器中设置-DDNS"><a href="#在路由器中设置-DDNS" class="headerlink" title="在路由器中设置 DDNS"></a>在路由器中设置 DDNS</h3><p>进入路由器设置，寻找 DDNS 或者 动态域名解析，选择花生壳服务，填写相关的用户名和密码，以及送与的免费的域名地址。</p>
<p>链接测试，路由器显示链接成功，并且进入花生壳域名管理，查看域名解析的情况。</p>
<p>如果失败了，请查看是否免费的域名填写错误，或者密码用户名错误等等。</p>
<p>此时，如果你运行如下命令</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ping your.deamon.com</div></pre></td></tr></table></figure>
<p>会正常的 <code>ping</code> 到自己的主机。</p>
<h3 id="配置端口转发"><a href="#配置端口转发" class="headerlink" title="配置端口转发"></a>配置端口转发</h3><p>当解析成功的时候，仅仅说明域名可以正常的找到这台路由器，但是还不能找到路由器内部的主机。</p>
<p>所以我们需要将路由器的部分端口映射到内部的服务器的主机的端口，这就是端口转发</p>
<p>根据需要，将服务器的 80 映射到路由器的 8000。<br>因为 Gitlab 需要 ssh 服务端口，所以还需要将 20 端口映射到路由器上。</p>
<h4 id="为什么要将-80-映射到-8000，而-ssh-却不用？"><a href="#为什么要将-80-映射到-8000，而-ssh-却不用？" class="headerlink" title="为什么要将 80 映射到 8000，而 ssh 却不用？"></a>为什么要将 80 映射到 8000，而 ssh 却不用？</h4><p>这是因为，我们的网络都是接入到外部运营商提供的网络，而运营商不允许用户私自搭建服务器（至于为啥，谁知道这群运营商怎么想的）。所以会封锁 80 端口。</p>
<p>这也就会产生一个很神奇的现象，如果你映射 80 端口，你在内网中，可以通过域名正常，但是你在外网，却不能访问。</p>
<p>为啥呢？根据 <code>计算机网络</code> 中所说的，获取目标 <code>ip</code>，之后，发现是局域网，于是就直接不走运营商了。。。。</p>
<p>弄完之后，就可以在地址中输入 <code>http://your.domain.com:8000</code> 访问 Gitlab 了。</p>
<h4 id="为什么我一切都配置好了，为啥还是不行？"><a href="#为什么我一切都配置好了，为啥还是不行？" class="headerlink" title="为什么我一切都配置好了，为啥还是不行？"></a>为什么我一切都配置好了，为啥还是不行？</h4><p>答案：请尝试关闭防火墙，或者将端口加入白名单。</p>
<p>PS: 因为服务器是 Centos 7， 所以采用了 <code>firewall</code> 的管理方式，而不是以前的 <code>iptables</code>，这一点需要注意。</p>
<h3 id="配置-Gitlab-中的-external-url"><a href="#配置-Gitlab-中的-external-url" class="headerlink" title="配置 Gitlab 中的 external_url"></a>配置 Gitlab 中的 <code>external_url</code></h3><p>在安装之后，你还需要配置 <code>external_url</code> 来在 repo 中正确显示url。</p>
<p>之所以没有从 host 中获取 URL ，是因为，很多情况下，git 仓库和前端管理是分离的，所以你需要自己去配置。</p>
<p>至于配置方式，详情请查看 <a href="http://doc.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab" target="_blank" rel="external">Configuring the external URL for GitLab</a></p>
<p>然后按照教程 <code>gitlab-ctl reconfigure</code> 即可</p>
<h3 id="Over"><a href="#Over" class="headerlink" title="Over"></a>Over</h3><p>至此，在添加了 Gitlab 成员之后，我就可以洗洗睡了，晚安~~~</p>

                    
                        

                    
                    
                        <p>
                            <a href="/2016/03/06/the-first-ddns-for-gitlab/#post-footer" class="postShorten-excerpt_link link">
                                注释和共享
                            </a>
                        </p>
                    
                </div>
            
        </div>
        
    </article>
    
    <div class="pagination-bar">
    <ul class="pagination">
        
        
        <li class="pagination-number">第 1 页 共 1 页</li>
    </ul>
</div>

</section>



                <footer id="footer" class="main-content-wrap">
    <span class="copyrights">
        Copyrights &copy; 2018 XGHeaven. All Rights Reserved.
    </span>
</footer>

            </div>
            
        </div>
        


    

<div id="about">
    <div id="about-card">
        <div id="about-btn-close">
            <i class="fa fa-remove"></i>
        </div>
        
            <img id="about-card-picture" src="https://www.gravatar.com/avatar/f34474afe04544ffbe944a804f0ae762?s=110"/>
        
            <h4 id="about-card-name">XGHeaven</h4>
        
            <h5 id="about-card-bio"><p>一个弱弱的码农</p>
</h5>
        
        
            <h5 id="about-card-job">
                <i class="fa fa-briefcase"></i>
                <br/>
                <p>杭州电子科技大学学生一枚</p>

            </h5>
        
        
            <h5 id="about-card-location">
                <i class="fa fa-map-marker"></i>
                <br/>
                Weifang Shandong, China
            </h5>
        
    </div>
</div>

        
<div id="cover" style="background-image:url('/static/images/20170217-TombRaider.jpg');"></div>
    </body>
    <!--SCRIPTS-->
<script src="/assets/js/scrip-z6xcdnzggiy56kzp83ux5nnbwra1acrauxruz3kdi3u5xladb6jh4n3ylebm.min.js"></script>
<!--SCRIPTS END-->



</html>
